package com.c2b.algorithm.leetcode.base;

/**
 * <a href="https://leetcode.cn/problems/reverse-integer/">整数反转(Reverse Integer)</a>
 * <p>给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。</p>
 * <p>如果反转后整数超过 32 位的有符号整数的范围 [−2^31,  2^31 − 1] ，就返回 0。</p>
 * <p>假设环境不允许存储 64 位整数（有符号或无符号）。</p>
 *
 * <p>
 * <b>示例：</b>
 * <pre>
 * 示例 1：
 *      输入：x = 123
 *      输出：321
 *
 * 示例 2：
 *
 *      输入：x = -123
 *      输出：-321
 *
 * 示例 3：
 *      输入：x = 120
 *      输出：21
 *
 * 示例 4：
 *      输入：x = 0
 *      输出：0
 * </pre>
 * </p>
 * <p>
 * <b>提示：</b>
 * <ul>
 *  <li>-2^31 <= x <= 2^31 - 1</li>
 * </ul>
 * </p>
 *
 * @author c2b
 * @see LC0190ReverseBits_S 颠倒二进制位(Reverse Bits)
 * @since 2023/4/26 16:39
 */
public class LC0007Reverse_M {

    public int reverse(int x) {
        long res = 0;
        while (x != 0) {
            res = res * 10 + x % 10;
            x /= 10;
        }
        return (int) res == res ? (int) res : 0;
        //if (res > Integer.MAX_VALUE || res < Integer.MIN_VALUE) {
        //    return 0;
        //}
        //return Integer.parseInt(String.valueOf(res));
    }

    public static void main(String[] args) {
        System.out.println((int) 11793807999L);
        System.out.println(new LC0007Reverse_M().reverse(1534236469));
    }
}
